AWS 上で HPC 環境構築用の CloudFormation テンプレート集を提供する HPC Recipes for AWS について
HPC Recipes for AWS では、AWS 上で HPC 環境を構築するための CloudFormation テンプレートが数多く公開されています。これから HPC 環境を構築するユーザーや、すでに HPC 環境を利用していて IaC(Infrastructure as Code)に取り組みたいユーザーにとっては非常に有用なコンテンツです。なので、紹介します。
HPC Recipes for AWS の概要
HPC 環境構築用の CloudFormation テンプレート集を提供する GitHub リポジトリです。このリポジトリは、AWS サービスを使用して HPC 環境構築に必要なリソースを構築するためのテンプレートが多数公開されています。
私はつい最近このリポジトリの存在を知りましたが、AWS HPC ブログで 2023 年 9 月に紹介された記事がありましたので、ぜひご覧ください。
先日 HPC Tech でも取り上げられていました。顧客の問題解決のために過去に作成したものを公開しており、必要な構成が見つかる可能性が高いのではないか的なことを仰っていました。
Cooking real clusters from the HPC Recipe Library - YouTube
HPC ユーザーのための CloudFormation テンプレートライブラリなので、これは是非活用していきたいですね。
公開されているテンプレートの特徴
公開されているテンプレートには、HPC 向けの VPC 構築から、AWS ParallelCluster の利用ユーザーを Active Directory で管理するための AWS Managed Microsoft AD 構築など、基本的なものからマニアックなものまで幅広く用意されています。
VPC や S3、FSx for Lustre など、各コンポーネントごとにテンプレートが分かれており、再利用性を高めています。ユーザーは個別のスタックを作成し必要なリソースを構築できます。スタックが分かれると問題なのはスタック間のリソースの連携なのですが、そこは考慮されておりスタック間の連携がスムーズに行えるような設計になっていました。一方のスタックからは他方のスタック名を指定してリソースをインポートする形です。
画像引用: Introducing a community recipe library for HPC infrastructure on AWS | AWS HPC Blog
DevelopersIO の取り組み
クラスメソッドでは、HPC ユーザー向けの技術支援しています。その一環として、HPC ユーザーの課題を解決するために設計・構築した CloudFormation テンプレートを DevelopersIO で公開しています。以下は、公開しているテンプレートの一例です。
- AWS ParallelCluster Ubuntu 22.04 で Mountpoint for Amazon S3 を使って S3 バケットをマウントする方法 | DevelopersIO
- Amazon FSx for Lustre SCRACH_2 ファイルシステムの作成・削除を CloudFormation で簡単に実行できるテンプレート紹介 | DevelopersIO
- ゲノムブラウザ JBrowse2 を CloudFront + S3 で Web 公開してみた | DevelopersIO
DevelopersIO でも公開しているテンプレートがありますので検索していただいて、こちらも是非ご活用ください。
テンプレートの活用方法
launch Stack
か、似たようなリンクをクリックすると、AWS アカウントのスタック作成画面に遷移する親切な作りとなっています。
パラメータを入力すればリソースを構築できます。
カスタマイズしてデプロイしたい方は、テンプレートを参考にして手直しすれば良いです。テンプレートはassets
ディレクトリ配下にmain.yaml
という名前で保存されていることを確認しています。どこかにテンプレートは保存されているはずですので探してみてください。
過去にやってみた例
AWS ParallelCluster に Mountpoint for Amazon S3 をマウントするためのカスタムブートストラップスクリプトの例が公開されており、以前試してみました。このスクリプトはクラスターコンフィグから引数を受け取り、S3 バケットをマウントする工夫がされていました。カスタムブートストラップスクリプトの実装例はあまり見かけなかったため参考になりました。
まとめ
「HPC Recipes for AWS」は、AWS 上で HPC 環境を構築するための便利な CloudFormation テンプレート集です。このリポジトリを活用することで、HPC 環境の構築が簡単かつ効率的になります。 また、DevelopersIO でも HPC ユーザーの課題解決にナレッジを提供していますのでご活用ください。
おわりに
普段 HPC on AWS を扱っている私でも新たな学びがありました。こちらのリポジトリの良い活用例を見つけたら改めて共有できればと思います。